"""
Это пример теста через тестовый класс.
На мой взгляд - устаревшая технология.
Но до сих пор используется в стандартной библиотеке unittest (pytest - может запуска такие тесты).
Тест громоздкий и трудно читаемый.
Выделение блоков кода в отдельные методы, улучшает читаемость(но особо не помогает).
"""
from selenium import webdriver
from selenium.webdriver.common.by import By


class TestHomelink():
  """
  Этот тест проверяет, что при нажатии на ссылку home,
  открывается страница на русском языке.
  """
  def setup_method(self, method):
    self.driver = webdriver.Chrome()
    self.vars = {}
  
  def teardown_method(self, method):
    self.driver.quit()
  
  def test_homelink(self):
    self.go_to_ru_version()
    # Проверяем текущий URL
    ru_wiki = "https://ru.wikipedia.org/"
    assert self.driver.current_url[:len(ru_wiki)] == ru_wiki
    # нажимаем ссылку "Википедию"
    self.driver.find_element(By.LINK_TEXT, "Википедию").click()
    # Проверяем, что на странице появилась надпись "Материал из Википедии — свободной энциклопедии"
    assert self.driver.find_element(By.ID, "siteSub").text == "Материал из Википедии — свободной энциклопедии"
    # нажимаем на логотип
    self.driver.find_element(By.CSS_SELECTOR, ".mw-wiki-logo").click()
    # Проверяем что вернулся на главную страницу русской версии
    assert self.driver.current_url[:len(ru_wiki)] == ru_wiki

  def go_to_ru_version(self):
    """
    Метод для перехода на русскую версию.
    Хочу показать, что можно переносить методы ресурсами IDE.
    Для этого нужно:
    - выделить код
    - нажать ctrl+alt+m
    """
    # Переходим на главную страницу
    self.driver.get("https://www.wikipedia.org/")
    # переходим в русскую версию
    self.driver.find_element(By.CSS_SELECTOR, "#js-link-box-ru > strong").click()


  
